home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_rfc822.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  9KB  |  163 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import rfc822
  5. import sys
  6. import unittest
  7. from test import test_support
  8.  
  9. try:
  10.     from cStringIO import StringIO
  11. except ImportError:
  12.     from StringIO import StringIO
  13.  
  14.  
  15. class MessageTestCase(unittest.TestCase):
  16.     
  17.     def create_message(self, msg):
  18.         return rfc822.Message(StringIO(msg))
  19.  
  20.     
  21.     def test_get(self):
  22.         msg = self.create_message('To: "last, first" <userid@foo.net>\n\ntest\n')
  23.         self.assert_(msg.get('to') == '"last, first" <userid@foo.net>')
  24.         self.assert_(msg.get('TO') == '"last, first" <userid@foo.net>')
  25.         self.assert_(msg.get('No-Such-Header') is None)
  26.         self.assert_(msg.get('No-Such-Header', 'No-Such-Value') == 'No-Such-Value')
  27.  
  28.     
  29.     def test_setdefault(self):
  30.         msg = self.create_message('To: "last, first" <userid@foo.net>\n\ntest\n')
  31.         self.assert_(not msg.has_key('New-Header'))
  32.         self.assert_(msg.setdefault('New-Header', 'New-Value') == 'New-Value')
  33.         self.assert_(msg.setdefault('New-Header', 'Different-Value') == 'New-Value')
  34.         self.assert_(msg['new-header'] == 'New-Value')
  35.         self.assert_(msg.setdefault('Another-Header') == '')
  36.         self.assert_(msg['another-header'] == '')
  37.  
  38.     
  39.     def check(self, msg, results):
  40.         '''Check addresses and the date.'''
  41.         m = self.create_message(msg)
  42.         i = 0
  43.         for n, a in m.getaddrlist('to') + m.getaddrlist('cc'):
  44.             
  45.             try:
  46.                 mn = results[i][0]
  47.                 ma = results[i][1]
  48.             except IndexError:
  49.                 print 'extra parsed address:', repr(n), repr(a)
  50.                 continue
  51.  
  52.             i = i + 1
  53.             if mn == n and ma == a:
  54.                 continue
  55.             print 'not found:', repr(n), repr(a)
  56.         
  57.         out = m.getdate('date')
  58.         if out:
  59.             self.assertEqual(out, (1999, 1, 13, 23, 57, 35, 0, 1, 0), 'date conversion failed')
  60.         
  61.  
  62.     
  63.     def test_basic(self):
  64.         self.check('Date:    Wed, 13 Jan 1999 23:57:35 -0500\nFrom:    Guido van Rossum <guido@CNRI.Reston.VA.US>\nTo:      "Guido van\n\t : Rossum" <guido@python.org>\nSubject: test2\n\ntest2\n', [
  65.             ('Guido van\n\t : Rossum', 'guido@python.org')])
  66.         self.check('From: Barry <bwarsaw@python.org\nTo: guido@python.org (Guido: the Barbarian)\nSubject: nonsense\nDate: Wednesday, January 13 1999 23:57:35 -0500\n\ntest', [
  67.             ('Guido: the Barbarian', 'guido@python.org')])
  68.         self.check('From: Barry <bwarsaw@python.org\nTo: guido@python.org (Guido: the Barbarian)\nCc: "Guido: the Madman" <guido@python.org>\nDate:  13-Jan-1999 23:57:35 EST\n\ntest', [
  69.             ('Guido: the Barbarian', 'guido@python.org'),
  70.             ('Guido: the Madman', 'guido@python.org')])
  71.         self.check('To: "The monster with\n     the very long name: Guido" <guido@python.org>\nDate:    Wed, 13 Jan 1999 23:57:35 -0500\n\ntest', [
  72.             ('The monster with\n     the very long name: Guido', 'guido@python.org')])
  73.         self.check('To: "Amit J. Patel" <amitp@Theory.Stanford.EDU>\nCC: Mike Fletcher <mfletch@vrtelecom.com>,\n        "\'string-sig@python.org\'" <string-sig@python.org>\nCc: fooz@bat.com, bart@toof.com\nCc: goit@lip.com\nDate:    Wed, 13 Jan 1999 23:57:35 -0500\n\ntest', [
  74.             ('Amit J. Patel', 'amitp@Theory.Stanford.EDU'),
  75.             ('Mike Fletcher', 'mfletch@vrtelecom.com'),
  76.             ("'string-sig@python.org'", 'string-sig@python.org'),
  77.             ('', 'fooz@bat.com'),
  78.             ('', 'bart@toof.com'),
  79.             ('', 'goit@lip.com')])
  80.         self.check('To: Some One <someone@dom.ain>\nFrom: Anudder Persin <subuddy.else@dom.ain>\nDate:\n\ntest', [
  81.             ('Some One', 'someone@dom.ain')])
  82.         self.check('To: person@dom.ain (User J. Person)\n\n', [
  83.             ('User J. Person', 'person@dom.ain')])
  84.  
  85.     
  86.     def test_twisted(self):
  87.         self.check('To: <[smtp:dd47@mail.xxx.edu]_at_hmhq@hdq-mdm1-imgout.companay.com>\nDate:    Wed, 13 Jan 1999 23:57:35 -0500\n\ntest', [
  88.             ('', ''),
  89.             ('', 'dd47@mail.xxx.edu'),
  90.             ('', '_at_hmhq@hdq-mdm1-imgout.companay.com')])
  91.  
  92.     
  93.     def test_commas_in_full_name(self):
  94.         self.check('To: "last, first" <userid@foo.net>\n\ntest', [
  95.             ('last, first', 'userid@foo.net')])
  96.  
  97.     
  98.     def test_quoted_name(self):
  99.         self.check('To: (Comment stuff) "Quoted name"@somewhere.com\n\ntest', [
  100.             ('Comment stuff', '"Quoted name"@somewhere.com')])
  101.  
  102.     
  103.     def test_bogus_to_header(self):
  104.         self.check('To: :\nCc: goit@lip.com\nDate:    Wed, 13 Jan 1999 23:57:35 -0500\n\ntest', [
  105.             ('', 'goit@lip.com')])
  106.  
  107.     
  108.     def test_addr_ipquad(self):
  109.         self.check('To: guido@[132.151.1.21]\n\nfoo', [
  110.             ('', 'guido@[132.151.1.21]')])
  111.  
  112.     
  113.     def test_iter(self):
  114.         m = rfc822.Message(StringIO('Date:    Wed, 13 Jan 1999 23:57:35 -0500\nFrom:    Guido van Rossum <guido@CNRI.Reston.VA.US>\nTo:      "Guido van\n\t : Rossum" <guido@python.org>\nSubject: test2\n\ntest2\n'))
  115.         self.assertEqual(sorted(m), [
  116.             'date',
  117.             'from',
  118.             'subject',
  119.             'to'])
  120.  
  121.     
  122.     def test_rfc2822_phrases(self):
  123.         self.check('To: User J. Person <person@dom.ain>\n\n', [
  124.             ('User J. Person', 'person@dom.ain')])
  125.  
  126.     
  127.     def test_2getaddrlist(self):
  128.         eq = self.assertEqual
  129.         msg = self.create_message('To: aperson@dom.ain\nCc: bperson@dom.ain\nCc: cperson@dom.ain\nCc: dperson@dom.ain\n\nA test message.\n')
  130.         ccs = [ ('', a) for a in [
  131.             'bperson@dom.ain',
  132.             'cperson@dom.ain',
  133.             'dperson@dom.ain'] ]
  134.         addrs = msg.getaddrlist('cc')
  135.         addrs.sort()
  136.         eq(addrs, ccs)
  137.         addrs = msg.getaddrlist('cc')
  138.         addrs.sort()
  139.         eq(addrs, ccs)
  140.  
  141.     
  142.     def test_parseaddr(self):
  143.         eq = self.assertEqual
  144.         eq(rfc822.parseaddr('<>'), ('', ''))
  145.         eq(rfc822.parseaddr('aperson@dom.ain'), ('', 'aperson@dom.ain'))
  146.         eq(rfc822.parseaddr('bperson@dom.ain (Bea A. Person)'), ('Bea A. Person', 'bperson@dom.ain'))
  147.         eq(rfc822.parseaddr('Cynthia Person <cperson@dom.ain>'), ('Cynthia Person', 'cperson@dom.ain'))
  148.  
  149.     
  150.     def test_quote_unquote(self):
  151.         eq = self.assertEqual
  152.         eq(rfc822.quote('foo\\wacky"name'), 'foo\\\\wacky\\"name')
  153.         eq(rfc822.unquote('"foo\\\\wacky\\"name"'), 'foo\\wacky"name')
  154.  
  155.  
  156.  
  157. def test_main():
  158.     test_support.run_unittest(MessageTestCase)
  159.  
  160. if __name__ == '__main__':
  161.     test_main()
  162.  
  163.